Using .net Objects

Modified on 2012/02/21 18:55 by John — Categorized as: Release Notes

Using .Net Objects within Jetfire (V1.3.6+ )

Beginning with release V1.3.6 of the Jetfire download .net objects (CLR objects) can be used directly within Jetfire with a few restrictions. Dot net object support will be phased in over a number of releases beginning with V1.3.6.


Restrictions - V1.3.12

There are currently a number of restrictions for the usage of clr objects within Jetfire. It is expected that these restrictions will be eased in the near future.


Internal Implementation

Jetfire stores the 'Class name' (and the assembly name) when the method "AddClrClass(System.Type)" is invoked. Each time a client nexus is started the Jetfire code is parsed, compiled and bound to the CLR static methods, properties and fields. Naturally the CLR code could change between client nexus invocations.

Should the CLR code change to prevent the Jetfire code from compiling the client nexus will start; however the Jetfire classes (parse units) may be marked broken if Jetfire is unable to deserialize the object.

The system implementer is responsible for managing revisions/updates/distribution/verification of CLR code that is bound in with Jetfire.

Serializing Clr Objects (to be implemented)

A Clr object type can be used in workflow field declaration. Jetfire will serialize the field's Clr object in a Xml readable format to be stored in the server nexus. The Jetfire will use the appropriate serializer.
  1. The ISerializable interface will be used if the Clr object supports this interface.
  2. The XML Serializer will be used if the Clr object supports the 'IXMLSerializable' interface.
  3. If no serializer is specified the Jetfire serializer will be used. The Jetfire serializer works like the XmlSerializer; however it supports 'Timespan', circular references and changes to Clr class.

Example Jetfire Code

Jetfire examples can be found in the directory 'JetfireCodePlex\JetfireCoreExampleTests\Example Code\CLR' which is part of the download.

See Also